Métodos de Predictivos (Clasificación o Aprendizaje-Supervisado)
Se necesita cargar las siguientes librerías
Muestra la distribución de la variable a predecir
equilibrio.variable.predecir<-function(datos,variable.predecir,ylab="Cantidad de individuos",xlab = "",
main=paste("Distribución de la variable",variable.predecir),
col = NA) {
gg_color <- function (n) {
hues <- seq(15, 375, length = n + 1)
hcl(h = hues, l = 65, c = 100)[1:n]
}
if(missing(variable.predecir) | !(variable.predecir %in% colnames(datos))){
stop("variable.predecir tiene que ser ingresada y ser un nombre de columna", call. = FALSE )
}
if(is.character(datos[,variable.predecir]) | is.factor(datos[,variable.predecir])){
if(length(col) == 0 || is.na(col)){
col <- gg_color(length(unique(datos[,variable.predecir])))
}else{
col <- rep(col,length(unique(datos[,variable.predecir])))
}
ggplot(data = datos, mapping = aes_string(x = variable.predecir, fill = variable.predecir)) +
geom_bar() +
scale_fill_manual(values = col, name = variable.predecir) +
labs(x = xlab, y = ylab, title = main) +
theme_minimal() +
theme(legend.position = "bottom")
}else{
stop("La variable a predecir tienen que ser de tipo factor o character", call. = FALSE )
}
}Muestra la distribución de una variable numérica según la variable a predecir
poder.predictivo.numerica<-function(datos,variable.predecir,variable.comparar,ylab="",xlab="",
main=paste("Densidad de la variable",variable.comparar,'según',variable.predecir),
col=NA){
gg_color <- function (n) {
hues <- seq(15, 375, length = n + 1)
hcl(h = hues, l = 65, c = 100)[1:n]
}
if(missing(variable.predecir) | !(variable.predecir %in% colnames(datos))){
stop("variable.predecir tiene que ser ingresada y ser un nombre de columna", call. = FALSE )
}
if(missing(variable.comparar) | !(variable.comparar %in% colnames(datos)) | !is.numeric(datos[,variable.comparar])){
stop("variable.comparar tiene que ser ingresada y ser un nombre de columna numérica", call. = FALSE )
}
if(is.character(datos[,variable.predecir]) | is.factor(datos[,variable.predecir])){
if(length(col) == 0 || is.na(col)){
col <- gg_color(length(unique(datos[,variable.predecir])))
}else{
col <- rep(col,length(unique(datos[,variable.predecir])))
}
ggplot(data = datos, aes_string(variable.comparar, fill = variable.predecir)) +
geom_density(alpha = .7, color = NA) +
scale_fill_manual(values = col) +
labs(title = main , y = ylab, x = xlab ,fill = variable.predecir) +
theme_minimal() +
theme(legend.position = 'bottom',
legend.title = element_blank(),
text = element_text(size = 15))
}else{
stop("La variable a predecir tienen que ser de tipo factor o character", call. = FALSE )
}
}Muestra la distribución de una variable categórica según la variable a predecir
poder.predictivo.categorica<-function(datos,variable.predecir,variable.comparar,ylab="",xlab="",
main=paste("Densidad de la variable",variable.comparar,'según',variable.predecir),
col=NA){
gg_color <- function (n) {
hues <- seq(15, 375, length = n + 1)
hcl(h = hues, l = 65, c = 100)[1:n]
}
if(missing(variable.predecir) | !(variable.predecir %in% colnames(datos))){
stop("variable.predecir tiene que ser ingresada y ser un nombre de columna", call. = FALSE )
}
if(missing(variable.comparar) | !(variable.comparar %in% colnames(datos)) |
!(is.factor(datos[,variable.comparar]) | is.character(datos[,variable.comparar])) ){
stop("variable.comparar tiene que ser ingresada y ser un nombre de columna categórica", call. = FALSE )
}
if(is.character(datos[,variable.predecir]) | is.factor(datos[,variable.predecir])){
if(length(col) == 0 || is.na(col)){
col <- gg_color(length(unique(datos[,variable.predecir])))
}else{
col <- rep(col,length(unique(datos[,variable.predecir])))
}
datos2 <- datos %>%
dplyr::group_by_(variable.comparar, variable.predecir) %>%
dplyr::summarise(count = n())
if(variable.comparar != variable.predecir){
datos2 <- datos2 %>% dplyr::group_by_(variable.comparar)
}
datos2 <- datos2 %>% dplyr::mutate(prop = round(count/sum(count),4))
ggplot(data = datos2, mapping = aes_string(x = variable.comparar, y = "prop", fill = variable.predecir)) +
geom_col(position = "fill") +
geom_text(aes(label = glue("{percent(prop)} ({count})")), position = position_stack(vjust = .5), color = "white") +
scale_y_continuous(label = percent) +
labs(y = xlab, x = ylab, title = main) +
scale_fill_manual(values = col, name = variable.predecir) +
theme(legend.position = "bottom")+
coord_flip()
}else{
stop("La variable a predecir tienen que ser de tipo factor o character", call. = FALSE )
}
}Índices para matrices NxN
indices.general <- function(MC) {
precision.global <- sum(diag(MC))/sum(MC)
error.global <- 1 - precision.global
precision.categoria <- diag(MC)/rowSums(MC)
res <- list(matriz.confusion = MC, precision.global = precision.global, error.global = error.global,
precision.categoria = precision.categoria)
names(res) <- c("Matriz de Confusión", "Precisión Global", "Error Global",
"Precisión por categoría")
return(res)
}Es importante saber que este método funciona sólo cuando la variable a predecir tiene solo para 2 categorías.
setwd("~/Desktop/Datos/")
datos<-read.csv("MuestraCredito5000V2.csv",sep = ";",header=T)
# Recodifica las variables como categóricas ordinales
datos$IngresoNeto <- factor(datos$IngresoNeto, ordered = TRUE)
datos$CoefCreditoAvaluo <- factor(datos$CoefCreditoAvaluo, ordered = TRUE)'data.frame': 5000 obs. of 6 variables:
$ MontoCredito : int 14327 111404 21128 15426 10351 27060 243369 16300 18319 107037 ...
$ IngresoNeto : Ord.factor w/ 2 levels "1"<"2": 1 1 1 2 1 1 1 2 2 2 ...
$ CoefCreditoAvaluo: Ord.factor w/ 12 levels "1"<"2"<"3"<"4"<..: 1 1 1 1 1 1 1 1 1 1 ...
$ MontoCuota : Factor w/ 4 levels "Alto","Bajo",..: 4 4 4 4 4 4 4 4 4 4 ...
$ GradoAcademico : Factor w/ 2 levels "Bachiller","Licenciatura": 1 1 1 1 1 1 1 1 1 1 ...
$ BuenPagador : Factor w/ 2 levels "No","Si": 2 2 2 2 2 2 2 2 2 2 ...
Vamos a generar al azar una tabla de testing con 15% de los datos y una tabla de aprendizaje con 85%
Se cargan las librerías
Se genera el modelo
# Genera el modelo con parámetros por defecto
modelo <- ada(BuenPagador~., data = taprendizaje)
modeloCall:
ada(BuenPagador ~ ., data = taprendizaje)
Loss: exponential Method: discrete Iteration: 50
Final Confusion Matrix for Data:
Final Prediction
True value No Si
No 425 178
Si 44 3603
Train Error: 0.052
Out-Of-Bag Error: 0.053 iteration= 40
Additional Estimates of number of iterations:
train.err1 train.kap1
16 16
Se genera la predicción
[1] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si
[24] Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[47] Si Si Si Si No No No Si Si Si Si Si Si Si Si Si No Si Si Si Si Si No
[70] Si Si Si Si Si No Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si
[93] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[116] No Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si
[139] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si No
[162] Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si No Si Si Si Si Si
[185] Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si
[208] Si Si Si Si Si Si Si Si Si Si Si Si Si No No Si Si No Si Si Si Si Si
[231] Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[254] Si Si Si Si No Si Si Si Si Si Si Si Si Si No Si Si No Si Si Si Si Si
[277] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No
[300] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[323] Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si Si Si No Si Si Si
[346] No Si Si Si Si Si Si No Si Si Si No Si Si Si Si No Si Si Si Si No Si
[369] Si Si Si No Si Si Si Si No Si Si Si Si No Si Si Si Si Si Si Si Si Si
[392] Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si No No Si Si Si Si Si
[415] Si No Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si No Si
[438] Si Si Si Si Si No Si No Si Si Si Si Si Si Si Si Si No No Si Si Si Si
[461] Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[484] Si Si Si Si Si Si Si Si Si Si Si Si No Si Si No Si Si Si Si Si Si Si
[507] No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si
[530] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No No Si Si Si Si
[553] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si
[576] Si Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si
[599] Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si No Si Si Si Si Si
[622] Si Si Si Si Si No Si No Si Si Si Si Si No Si Si Si Si Si No No Si Si
[645] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si
[668] Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si No Si Si Si
[691] Si Si Si Si Si Si Si No Si Si No Si Si Si Si Si Si Si Si Si Si Si Si
[714] Si Si Si Si Si No Si Si Si Si Si Si Si Si Si No No No Si Si Si Si Si
[737] Si Si Si Si Si Si Si Si Si No Si Si Si Si
Levels: No Si
Graficar el modelo
La importancia de variables según el modelo
Se genera la matriz de confusión
prediccion
No Si
No 66 36
Si 4 644
Índices de calidad de la predicción
$`Matriz de Confusión`
prediccion
No Si
No 66 36
Si 4 644
$`Precisión Global`
[1] 0.9466667
$`Error Global`
[1] 0.05333333
$`Precisión por categoría`
No Si
0.6470588 0.9938272
Se cargan las librerías
Se genera el modelo
Call:
ada(BuenPagador ~ ., data = taprendizaje)
Loss: exponential Method: discrete Iteration: 50
Final Confusion Matrix for Data:
Final Prediction
True value No Si
No 436 167
Si 44 3603
Train Error: 0.05
Out-Of-Bag Error: 0.051 iteration= 46
Additional Estimates of number of iterations:
train.err1 train.kap1
49 49
Se genera la predicción
[1] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si
[24] Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si
[47] Si Si Si Si No No No Si Si Si Si Si Si Si Si Si No Si Si Si Si Si No
[70] Si Si Si Si Si No Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si
[93] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[116] No Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si No Si Si Si
[139] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si No
[162] Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si No Si Si Si Si Si
[185] Si Si Si Si No Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si
[208] Si Si Si Si Si Si Si Si Si Si Si Si Si No No Si Si No Si Si Si Si Si
[231] Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[254] Si Si Si Si No Si Si Si Si Si Si Si Si Si No Si Si No Si Si Si Si Si
[277] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No
[300] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[323] Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si Si Si No Si Si Si
[346] No Si Si Si Si Si Si No Si Si Si No Si No Si Si No Si Si Si Si No Si
[369] Si Si Si No Si Si Si Si No Si Si Si Si No Si Si Si Si Si Si Si Si Si
[392] Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si No Si Si Si Si Si Si
[415] Si No Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si No Si
[438] Si Si Si Si Si No Si No Si Si Si Si Si Si Si Si Si No No Si Si Si Si
[461] Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[484] Si Si Si Si Si Si Si Si Si Si Si Si No Si Si No Si Si Si Si Si Si Si
[507] No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si
[530] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No No Si Si Si Si
[553] Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si No Si Si Si
[576] Si Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si
[599] Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si No Si Si Si Si Si
[622] Si Si Si Si Si No Si No Si Si Si Si Si No Si Si Si Si Si No No Si Si
[645] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si
[668] Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si No Si Si Si
[691] Si Si Si Si Si Si Si No Si Si No Si Si Si Si Si Si Si Si Si Si Si Si
[714] Si Si Si Si Si No Si Si Si Si Si Si Si Si Si No No No Si Si Si Si Si
[737] Si Si Si Si Si Si Si Si Si No Si Si Si Si
Levels: No Si
Graficar el modelo
La importancia de variables según el modelo
Se genera la matriz de confusión
prediction
real No Si
No 70 32
Si 4 644
Índices de calidad de la predicción
Confusion Matrix:
prediction
real No Si
No 70 32
Si 4 644
Overall Accuracy: 0.9520
Overall Error: 0.0480
Category Accuracy:
No Si
0.686275 0.993827
Podemos omitir crear la matriz de confusión
Confusion Matrix:
prediction
real No Si
No 70 32
Si 4 644
Overall Accuracy: 0.9520
Overall Error: 0.0480
Category Accuracy:
No Si
0.686275 0.993827
Genera el modelo modificando:
iter: el número de árboles. Por defecto iter = 50type: el algoritmo interno. Por defecto type = ‘discrete’ (“discrete”,“real”,“gentle”)minsplit: la cantidad mínima por nodo. Por defecto minsplit = 2maxdepth: el número de niveles. Por defecto maxdepth = 15Se cargan las librerías
Se genera el modelo
modelo <- ada(BuenPagador~., data = taprendizaje, iter = 200, type = 'real',
control = rpart.control(minsplit = 2, maxdepth = 30))
modeloCall:
ada(BuenPagador ~ ., data = taprendizaje, iter = 200, type = "real",
control = rpart.control(minsplit = 2, maxdepth = 30))
Loss: exponential Method: real Iteration: 200
Final Confusion Matrix for Data:
Final Prediction
True value No Si
No 454 149
Si 41 3606
Train Error: 0.045
Out-Of-Bag Error: 0.048 iteration= 184
Additional Estimates of number of iterations:
train.err1 train.kap1
197 197
Se genera la predicción
[1] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si
[24] Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si
[47] Si Si Si Si No No No Si Si Si Si Si Si Si Si Si No Si Si Si Si Si No
[70] Si Si Si Si Si No Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si
[93] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[116] No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si
[139] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si No
[162] Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si No Si Si Si Si Si
[185] Si Si Si Si No Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si
[208] Si Si Si Si Si Si Si Si Si Si Si Si Si No No Si Si No Si Si Si Si Si
[231] Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[254] Si Si Si Si No Si Si Si Si Si Si Si Si Si No Si Si No Si Si Si Si Si
[277] Si Si Si Si Si Si Si No Si Si Si Si No Si Si Si Si Si Si Si Si Si No
[300] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[323] Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si Si Si No Si Si Si
[346] No Si Si Si Si Si Si No Si Si Si No Si No Si Si No Si Si Si Si No Si
[369] Si Si Si No Si Si Si Si No Si Si Si Si No Si Si Si Si Si Si Si Si Si
[392] Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si No No Si Si Si Si Si
[415] Si No Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si No Si
[438] Si Si Si Si Si No Si No Si Si Si Si Si Si Si Si Si No No Si Si Si Si
[461] Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[484] Si Si Si Si Si Si Si Si Si Si Si Si No Si Si No Si Si Si Si Si Si Si
[507] No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si
[530] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No No Si Si Si Si
[553] Si Si Si Si Si Si Si No Si Si Si Si Si Si No Si Si Si Si No Si Si Si
[576] Si No Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si
[599] Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si No Si Si Si Si Si
[622] Si Si Si Si Si No Si No Si Si Si Si Si No Si Si Si Si Si No No Si Si
[645] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si
[668] Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si No Si Si Si
[691] Si Si Si Si Si Si Si No Si Si No Si Si Si Si Si Si Si Si Si Si Si Si
[714] Si Si Si Si Si No Si Si Si Si Si Si Si Si Si No No No Si Si Si Si Si
[737] Si Si Si Si Si Si Si Si Si No Si Si Si Si
Levels: No Si
Graficar el modelo
La importancia de variables según el modelo
Se genera la matriz de confusión
prediccion
No Si
No 73 29
Si 5 643
Índices de calidad de la predicción
$`Matriz de Confusión`
prediccion
No Si
No 73 29
Si 5 643
$`Precisión Global`
[1] 0.9546667
$`Error Global`
[1] 0.04533333
$`Precisión por categoría`
No Si
0.7156863 0.9922840
Se cargan las librerías
Se genera el modelo
modelo <- train.ada(BuenPagador~., data = taprendizaje, iter = 200, type = 'real',
control = rpart.control(minsplit = 2, maxdepth = 30))
modeloCall:
ada(BuenPagador ~ ., data = taprendizaje, iter = 200, type = "real",
control = rpart.control(minsplit = 2, maxdepth = 30))
Loss: exponential Method: real Iteration: 200
Final Confusion Matrix for Data:
Final Prediction
True value No Si
No 449 154
Si 46 3601
Train Error: 0.047
Out-Of-Bag Error: 0.047 iteration= 166
Additional Estimates of number of iterations:
train.err1 train.kap1
148 179
Se genera la predicción
[1] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si
[24] Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si
[47] Si Si Si Si No No No Si Si Si Si Si Si Si Si Si No Si Si Si Si Si No
[70] Si Si Si Si Si No Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si
[93] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[116] No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si
[139] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si No
[162] Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si No Si Si Si Si Si
[185] Si Si Si Si No Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si
[208] Si Si Si Si Si Si Si Si Si Si Si Si Si No No Si Si No Si Si Si Si Si
[231] Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[254] Si Si Si Si No Si Si Si Si Si Si Si Si Si No Si Si No Si Si Si Si Si
[277] Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si No
[300] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[323] Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si Si Si No Si Si Si
[346] No Si Si Si Si Si Si No Si Si Si No Si Si Si Si No Si Si Si Si No Si
[369] Si Si Si No Si Si Si Si No Si Si Si Si No Si Si Si Si Si Si Si Si Si
[392] Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si No Si Si Si Si Si Si
[415] Si No Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si No Si
[438] Si Si Si Si Si No Si No Si Si Si Si Si Si Si Si Si No No Si Si Si Si
[461] Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[484] Si Si Si Si Si Si Si Si Si Si Si Si No Si Si No Si Si Si Si Si Si Si
[507] No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si
[530] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No No Si Si Si Si
[553] Si Si Si Si Si Si Si No Si Si Si Si Si Si No Si Si Si Si No Si Si Si
[576] Si Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si
[599] Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si No Si Si Si Si Si
[622] Si Si Si Si Si No Si No Si Si Si Si Si No Si Si Si Si Si No No Si Si
[645] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si
[668] Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si No Si Si Si
[691] Si Si Si Si Si Si Si No Si Si No Si Si Si Si Si Si Si Si Si Si Si Si
[714] Si Si Si Si Si No Si Si Si Si Si Si Si Si Si No No No Si Si Si Si Si
[737] Si Si Si Si Si Si Si Si Si No Si Si Si Si
Levels: No Si
Graficar el modelo
La importancia de variables según el modelo
Se genera la matriz de confusión
prediction
real No Si
No 71 31
Si 3 645
Índices de calidad de la predicción
Confusion Matrix:
prediction
real No Si
No 71 31
Si 3 645
Overall Accuracy: 0.9547
Overall Error: 0.0453
Category Accuracy:
No Si
0.696078 0.995370
Podemos omitir crear la matriz de confusión
Confusion Matrix:
prediction
real No Si
No 71 31
Si 3 645
Overall Accuracy: 0.9547
Overall Error: 0.0453
Category Accuracy:
No Si
0.696078 0.995370
Utilizando los datos que previamente cargamos
Podemos visualizar la distribución de las variables numéricas y categóricas según la variable a predecir.
Utilizando los mismo datos para prueba (ttesting) y aprendizaje (taprendizaje) que creamos anteriormente.
Se cargan las librerías
Se genera el modelo
modelo <- ada(BuenPagador~CoefCreditoAvaluo+MontoCredito+IngresoNeto,
data = taprendizaje, iter = 200, type = 'real',
control = rpart.control(minsplit = 2, maxdepth = 30))
modeloCall:
ada(BuenPagador ~ CoefCreditoAvaluo + MontoCredito + IngresoNeto,
data = taprendizaje, iter = 200, type = "real", control = rpart.control(minsplit = 2,
maxdepth = 30))
Loss: exponential Method: real Iteration: 200
Final Confusion Matrix for Data:
Final Prediction
True value No Si
No 124 479
Si 53 3594
Train Error: 0.125
Out-Of-Bag Error: 0.127 iteration= 162
Additional Estimates of number of iterations:
train.err1 train.kap1
200 200
Se genera la predicción
[1] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[24] Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[47] Si Si Si Si Si No No Si Si Si Si Si Si Si Si Si No Si Si Si Si Si Si
[70] Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[93] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[116] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[139] Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[162] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si Si
[185] Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[208] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si Si
[231] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[254] Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[277] Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[300] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[323] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[346] Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si No Si Si Si Si Si Si
[369] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[392] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si Si
[415] Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[438] Si Si Si Si Si Si Si No Si Si Si Si Si No Si Si Si Si No Si Si Si Si
[461] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[484] Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si
[507] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[530] Si Si Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si No Si Si Si Si
[553] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[576] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[599] Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[622] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si
[645] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No
[668] Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si
[691] Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[714] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[737] Si Si Si Si Si Si Si Si Si Si Si Si Si Si
Levels: No Si
Graficar el modelo
La importancia de variables según el modelo
Se genera la matriz de confusión
prediccion
No Si
No 21 81
Si 5 643
Índices de calidad de la predicción
$`Matriz de Confusión`
prediccion
No Si
No 21 81
Si 5 643
$`Precisión Global`
[1] 0.8853333
$`Error Global`
[1] 0.1146667
$`Precisión por categoría`
No Si
0.2058824 0.9922840
Se cargan las librerías
Se genera el modelo
modelo <- train.ada(BuenPagador~CoefCreditoAvaluo+MontoCredito+IngresoNeto,
data = taprendizaje, iter = 200, type = 'real',
control = rpart.control(minsplit = 2, maxdepth = 30))
modeloCall:
ada(BuenPagador ~ CoefCreditoAvaluo + MontoCredito + IngresoNeto,
data = taprendizaje, iter = 200, type = "real", control = rpart.control(minsplit = 2,
maxdepth = 30))
Loss: exponential Method: real Iteration: 200
Final Confusion Matrix for Data:
Final Prediction
True value No Si
No 130 473
Si 54 3593
Train Error: 0.124
Out-Of-Bag Error: 0.126 iteration= 97
Additional Estimates of number of iterations:
train.err1 train.kap1
186 186
Se genera la predicción
[1] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[24] Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[47] Si Si Si Si Si No No Si Si Si Si Si Si Si Si Si No Si Si Si Si Si Si
[70] Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[93] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[116] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[139] Si Si Si Si Si Si Si No Si No Si Si Si Si Si Si Si Si Si Si Si Si Si
[162] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si Si
[185] Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[208] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si Si
[231] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[254] Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[277] Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[300] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[323] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[346] Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si No Si Si Si Si Si Si
[369] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[392] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si Si
[415] Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[438] Si Si Si Si Si Si Si No Si Si Si Si Si No Si Si Si Si No Si Si Si Si
[461] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si
[484] Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si
[507] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[530] Si Si Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si No Si Si Si Si
[553] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[576] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[599] Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[622] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No Si Si
[645] Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si No
[668] Si Si Si Si Si Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si
[691] Si Si Si Si Si Si Si No Si Si Si Si Si Si Si Si Si Si Si Si Si Si Si
[714] Si Si Si Si Si Si Si Si No Si Si Si Si Si Si No Si Si Si Si Si Si Si
[737] Si Si Si Si Si Si Si Si Si Si Si Si Si Si
Levels: No Si
Graficar el modelo
La importancia de variables según el modelo
Se genera la matriz de confusión
prediction
real No Si
No 22 80
Si 8 640
Índices de calidad de la predicción
Confusion Matrix:
prediction
real No Si
No 22 80
Si 8 640
Overall Accuracy: 0.8827
Overall Error: 0.1173
Category Accuracy:
No Si
0.215686 0.987654
Podemos omitir crear la matriz de confusión
Confusion Matrix:
prediction
real No Si
No 22 80
Si 8 640
Overall Accuracy: 0.8827
Overall Error: 0.1173
Category Accuracy:
No Si
0.215686 0.987654